package com.jctrip.hotel.source.service.hworld;

import com.jctrip.hotel.source.model.hworld.HworldCallBackRequestBody;

import java.util.Map;

/**
 * @Author henry
 * @Date 2023/5/29 22:03
 * @Description
 */
public interface HworldTaskService {

    void syncHworldHotelIdListTask(String appId, String key, String hotelId);

    void syncHworldHotelIdListTaskFastPush(String appId, String key);

    void syncHworldHotelIdListTaskFastPop(String appId, String key);

    void syncHworldRatesTaskPush();

    void syncHworldRatesTaskFastPop(String appId, String key, String memberLevel, Integer days, Map<String, String> rateCodeWithSourceIdMap);

    void syncHworldLongerRatesPush();

    void syncHworldLongerRatesPop(String appId, String key, String memberLevel,
                                  Integer addDays, Integer days, Map<String, String> rateCodeWithSourceIdMap);

    void syncHworldHotspotRatesTaskPush();

    void syncHworldHotspotRatesTaskFastPop(String appId, String key, String memberLevel, Integer days, Map<String, String> rateCodeWithSourceIdMap);

    void syncHworldRatesTaskPop(String appId, String key, String hotelId, String start, String end,
                                String memberLevel, Map<String, String> rateCodeWithSourceIdMap);

    void syncHworldReateCallBackProcess(HworldCallBackRequestBody req);

    void syncHworldRoomRepairPush();

    void syncHworldRoomRepairPop(String appId, String key, String memberLevel);

    void syncHworldRoomRepair(String appId, String key, String hotelId, String start, String end,
                              String memberLevel);

    void syncHworldPicPush();

    void syncHworldPicPop(String sourceAppId, String sourceSecret);

    void syncHworldPic(String appId, String secret, String hotelId);

    void syncHworldActivityRatesTaskPop(String sourceAppId, String sourceSecret, String memberLevel, Integer days);

    void syncHworldActivityRatesTaskPush();

    void syncHworldActivityRatesTask(String sourceAppId, String sourceSecret, String hotelId, String startDate, String endDate, String memberLevel);
}
